perm filename COMT.PAL[HAL,HE]9 blob sn#193349 filedate 1975-12-15 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00011 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	  Test of condition monitors
C00004 00003	  SMALL TEST OF ARITHMETIC
C00006 00004	  Test of graph structure:  calculators
C00009 00005	  Test of graph structure:  changers
C00010 00006	 test of global declarations
C00011 00007	 TEST OF FORCE MONITORS
C00012 00008	  TEST OF SSBRTNS
C00013 00009	Test of force monitoring with motion
C00018 00010	Test of parallel code
C00019 00011	  SMALL TEST OF VARIABLE DECLARATIONS
C00020 ENDMK
C⊗;
;  Test of condition monitors

COMMENT ⊗
	XPRINT
	L45	;Say hello
	XCMMAK	
	20	;CM at 20
	L30	;Code at L30 for c-m
	XMVAR	;
	10	;X
	12	;y
	0
	XPUSH	;X ← L41
	L41
	XCHNGE	
	10
	XPUSH	;Y ← L41.5 (= 0)
	L41.5
	XCHNGE	
	12
	XCMENB	;Enable checker
	20
L32:	XGTVAL	;X ← X - 1
	10	;
	XCOPY	;
	0
	XPRNTS	;Say what X is
	XPUSH	;
	L43	;Push 1
	XSSUB	;Subtract
	XCHNGE	;
	10	;
	XGTVAL	;
	12	;Y=0?
	XJUMPC	;
	2	;
	L32	;If so, loop
	XCMDEST	;else get rid of checker
	20	;
	0
	XTERMINATE;and go away

L30:	XCMSKED	;Checker body
	XPRINT	;Say "."
	L46	;
	XGTVAL	;X≤0?
	10	;
	XJUMPC	;
	7	;if GT then jump
	L30	;
	XCMTRIG	;Yes.  trigger
	XPRINT
	L44	;Say "zero"
	XPUSH	;
	L41	;SET Y ← 10.0
	XCHNGE	;
	12	;
	XJUMP	;
	L30	;

;data area
L41:	41040	;10.0
	0
L41.5:	0	;0.0
	0
L42:	ASCIE </
	DECREMENTING/>
L43:	40200	;1.0
	0
L44:	ASCIE </
	ZERO/>
L45:	ASCIE </
	TEST OF CONDITION CHECKERS
/>
L46:	ASCIE </./>

⊗
;  SMALL TEST OF ARITHMETIC

COMMENT ⊗
L1:	XMVAR
	10	;X
	12	;Y
	14	;Z
	16	;W
	0
	XPUSH	;X ← L103
	L103
	XCHNGE
	10
	XPUSH	;Y ← L105
	L105
	XCHNGE
	12
	XPUSH	;Z ← L107
	L107
	XCHNGE
	14

	XGTVAL	;W ← X . Y . Z
	10
	XGTVAL
	12
	XGTVAL
	14
L2:	XVMAKE
	XCHNGE
	16
	XPRINT	;
	A1	;
	XVARPRN	;
	16	;W
	XTERMINATE

L103:		;VECTOR(44.5, 44.5, 44.5, 2)
	41462
	0
	41462
	0
	41462
	0
	40400
	0

L105:		;VECTOR(10, 10, 10, 1)
	41040
	0
	41040
	0
	41040
	0
	40200
	0

L107:		;VECTOR(20, 20, 20, 1)
	41240
	0
	41240
	0
	41240
	0
	40200
	0
A1:	ASCIE /W = /
;⊗
;  Test of graph structure:  calculators

COMMENT ⊗
	XMVAR
	20	;X
	22	;Y
	24	;Z
	26	;W
	0	;
	XPUSH	;X ← 1
	L1	;
	XCHNGE	;
	20	;
	XPUSH	;Y ← 1
	L1	;
	XCHNGE	;
	22	;
	XMEXP	;EXPR(X + Y)
	20	;neededs
	22	;
	0	;
	L10	;code
	30	;offset
	XMCLC	;
	30	;Expr
	24	;Z <= EXPR
	XMCLC	;
	30	;Expr
	26	;W <= EXPR
	XMEXP	;W <= Z
	24	;neededs
	0	;
	L11	;code
	34	;offset
	XMCLC	;
	34	;Expr
	26	;W
	XGTVAL	;Print W
	26	;
	XPRNTS	;
	XKVAR	;
	20	;
	0	;
	XDCLC	;
	34	;
	26	;W
	XKVAR	;
	22	;
	24	;
	26	;
	0	;
	XTERMINATE
L10:	XGTVAL	;X
	20	;
	XGTVAL	;Y
	22	;
	XSADD	;+
	XENDCLC	;
L11:	XGTVAL	;Z
	24	;
	XENDCLC	;
L1:	40200	;1
	0
;⊗
;  Test of graph structure:  changers

COMMENT ⊗
	XMVAR
	20	;X
	22	;Y
	24	;Z
	26	;W
	0	;
	XPUSH	;X ← 1
	L1	;
	XCHNGE	;
	20	;
	XPUSH	;Y ← 1
	L1	;
	XCHNGE	;
	22	;
	XMCHG	;WHEN CHANGE X DO [Z ← NEW-OLD; PRINT Z]
	20	;
	L10	;code
	XMCHG	;WHEN CHANGE Z DO [PRINT Z]
	24	;
	L11	;code
	XPUSH	;X ← 10
	L2	;
	XCHNGE	;
	20	;
	XTERMINATE
L10:	XGTNEW	;
	XGTOLD	;
	XSSUB	;-
	XCOPY	;
	0
	XPRNTS	;
	XCHNGE	;
	24	;Z
	XTERMINATE
L11:	XGTVAL	;
	24	;Z
	XPRNTS	;
	XTERMINATE
L1:	40200	;1
	0
L2:	41040	;=10
	0
⊗
; test of global declarations

COMMENT ⊗
	XMVAR 	;
	20	;X
	0	;
	XPUSH	;
	L1	;1.0
	XCHNGE	;
	20	;X
	XGLBLNK	;
	24	;Z
	11111	;
	17777	;
	XGLBLNK	;
	26	;Z1
	21111	;
	17777	;
	XGLBLNK	;
	30	;Z1
	21111	;
	17777	;
	XGTVAL	;
	20	;X
	XCHNGE	;
	26	;Z
	XGTVAL	;
	30	;Z
	XPRNTS	;
	XKVAR	;
	20	;X
	XBREAK	;
	XTERMINATE
L1:	40200	;1.0
	0
⊗
; TEST OF FORCE MONITORS
COMMENT ⊗
	XPUSH	;
	L1	;vector
	XPUSH	;
	L1	;vector
	XMAKFORCE
	20	;F
	1	;yellow arm
	XGETFORCE	;
	20
	XPRNTS	;
	XBRACE	;
	XDESFORCE	;
	20	;
	XTERMINATE	;
L1:	40200	;
	0
	40400	;
	0
	40600	;
	0	;
⊗
;  TEST OF SSBRTNS

COMMENT ⊗
	XPUSH
	L1	;4.0
	XSSBRTN
	1	;SQRT
	XPRNTS	;
	XTERMINATE
L1:	40600	;
	0	;
⊗
;Test of force monitoring with motion

COMMENT ⊗
		;PROG
	XMVAR
	10
	12
	14
	16
	0
		;BLOCK
	XMVAR
		;$B1.DEST
	22
		;$B1.STAND
	24
		;$B1.DUMMY
	26
		;$B1.S
	30
	0
	XPUSH	
	L20	;force (0 10 0)
	XPUSH
	L21	;moment (all zeroes)
	XMAKFORCE
	34	;FORCE VARIABLE
	4	;blue arm
	XJUMP
	L22
L20:	0
	0
	41040
	0
	0
	0
L21:	0
	0
	0
	0
	0
	0
		;Condition monitor checker
L2:	XCMSKED
	144
	XCMTRIG
	XGETFORCE	;
	34
	XPRNTS	;JUST SAY IT
	XCMENB	;
	32	;reenable
	XJUMP
	L2
		;Create condition monitor
L22:	XCMMAK
	32
	0
	L2
	XCMENB
	32	;enable him
		;Assignment
	XPUSH
	L4
		;$B1.STAND
	XCHNGE
	24
		;Assignment
	XPUSH
	L5
		;BARM
	XCHNGE
	14
		;Assignment
	XPUSH
	L6
		;$B1.DEST
	XCHNGE
	22
		;MOVE
	XMOVE
	L7
		;MOVE
	XMOVE
	L11
		;Block end cleanup
	XKVAR
	22
	24
	26
	30
	0
	XCMDES
	32
	0
	XDESFORCE
	34	;FORCE VARIABLE
		;END BLOCK
		;END PROG
	XKVAR
	10
	12
	14
	16
	0
	XTERMINATE

		;Motion table
L7:	770
	0
	0
		;Relative segment pointer
	310
	2774
	L11
	0
		;Coefficients, gravity, inertia
	42064
	2474
	0
	0
	0
	0
	142566
	110003
	42670
	166002
	142423
	170002
	141664
	130770
	0
	0
	0
	0
	137536
	2000
	37646
	101000
	137405
	33000
	41140
	26676
	0
	0
	0
	0
	141003
	117156
	41105
	66644
	140635
	170520
	141664
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	41663
	47010
	0
	0
	0
	0
	137536
	2000
	37646
	101000
	137405
	33000
	36634
	163754
	0
	0
	0
	0
	142566
	107457
	42670
	165543
	142423
	167603
	0
	0
	47126
	110677
	42444
	146375
	47330
	70072
	140151
	65472
	44754
	142200
	0
	0
	46073
	64100
	137107
	173154
	46015
	107110
	0
	0
	45130
	123200
	0
		;End of motion table
		;Motion table
L11:	770
	0
	0
		;Relative 3egment po)nter
	310
	2774
	0
	0
		;Coefficients, gravity, inertia
	41642
	145166
	0
	0
	0
	0
	42566
	110003
	142670
	166002
	42423
	170002
	141664
	136421
	0
	0
	0
	0
	37536
	2000
	137646
	101000
	37405
	33000
	41123
	2115
	0
	0
	0
	0
	41003
	117156
	141105
	66644
	40635
	170520
	141664
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	41663
	41357
	0
	0
	0
	0
	37536
	2000
	137646
	101000
	37405
	33000
	141705
	32612
	0
	0
	0
	0
	42566
	107457
	142670
	165543
	42423
	167603
	0
	0
	47132
	37034
	42513
	44174
	47332
	43145
	140132
	152222
	44754
	142200
	0
	0
	46073
	64111
	137107
	173156
	46015
	107110
	0
	0
	45130
	123200
	0
		;End of motion table
L3:	40200
	0
L4:	40200
	0
	0
	0
	0
	0
	0
	0
	0
	0
	140200
	0
	32711
	7733
	0
	0
	0
	0
	132711
	7733
	140200
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
L5:	40200
	0
	0
	0
	0
	0
	0
	0
	0
	0
	140200
	0
	0
	0
	0
	0
	0
	0
	0
	0
	140200
	0
	0
	0
	41456
	24366
	41543
	70244
	41053
	127025
	0
	0
L6:	40200
	0
	0
	0
	0
	0
	0
	0
	0
	0
	140200
	0
	0
	0
	0
	0
	0
	0
	0
	0
	140200
	0
	0
	0
	41406
	24366
	41473
	70244
	41053
	127025
	0
	0
		;Trans pointer for motion
L10:	22
	0
;⊗
;Test of parallel code

COMMENT ⊗

	XMAKEVT
	20
	0
	XSPROUT
	L1
	L2
	L3
	0
	XTERMINATE
L1:	XNOOP
	XWAITE
	20
	XNOOP
	XTERMINATE
L2:	XNOOP
	XWAITE
	20
	XNOOP
	XTERMINATE
L3:	XNOOP
	XSIGNAL
	20
	XSIGNAL
	20
	XNOOP
	XTERMINATE

;⊗
;  SMALL TEST OF VARIABLE DECLARATIONS

COMMENT ⊗

L1:	XMVAR
	10
	12
	14
	0
	XKVAR
	12
	0
	XPUSH
	L2
	XCHNGE
	10
	XGTVAL
	10
	XCHNGE
	14
	XTERMINATE

L2:	7777
	6666

;⊗